home *** CD-ROM | disk | FTP | other *** search
/ Mac Format 1997 July / macformat52.iso / mac / Demos / InfoGenie 2 / InfoGenie™ AppleScript Folder / AppleScript Instructions / IG AppleScript Events < prev    next >
Text File  |  1996-02-24  |  22KB  |  333 lines

  1. AppleScripting InfoGenie™
  2.  
  3. If you have not yet read the IG AppleScript Intro file, please do that before going on with this one.
  4.  
  5. Events
  6. Events are arranged into functional categories. Keywords for parameters are italicized in the text below. For an alphabetical listing, look at the dictionary in Script Editor.
  7.  
  8. Current Record-related Events
  9. These events operate only on the current record of the current (front-most) datafile. They often involve the selection of text, and or the movement of text to and from the clipboard.
  10.  
  11. clear - Clears selected text in the current datafile without moving it into the clipboard.
  12.  
  13. copy - Copies the selection in the current datafile to the clipboard.
  14.  
  15. cut - Cuts the selection from the current datafile to the clipboard.
  16.  
  17. display - Brings a record and/or datafile to the front, making it the current record or datafile. This also makes that record/datafile the default for many other events.
  18.  
  19. This event requires a reference to a record or to a datafile. If the reference is a record, that record is made current, and so is its datafile. If the reference is a datafile, it is brought to the front without changing its current record.
  20.  
  21. Examples:    display record 5 of datafile "Sample Field Datafile"
  22.                           display datafile "Recipes"
  23.                           display record 3 -- of the current datafile
  24.  
  25. find - Searches for the next record containing a specified string. First, the datafile being searched is brought to the front. If the string is found, its record is made the current record, the string is selected, and the event returns a result of true. If the search is unsuccessful, the result is false. (In the case of field-based datafiles, the selection will not go past the end of the first cell containing the found text.)
  26.  
  27. This event takes an optional keyword in, followed by a reference to a datafile. If there is no reference, the default is to search the current datafile.
  28.  
  29. If the search was successful, you can get the offset and length of the selected string by using the get data event to get the datafile's selection start and selection length properties.
  30.  
  31. To search for more than one string, place \"AND\" between the strings inside the main quotes. See the second example below.
  32.  
  33. Examples:    find "Bob Farkle" -- in the current datafile
  34.                           find "pepper\"AND\"mango" in datafile "Recipes"
  35.  
  36.                           if find "Mackintosh" in datafile "Bogus Data"
  37.                               set selection to "Macintosh"
  38.                          end if
  39.  
  40. paste - Pastes the contents of the clipboard to the selection in the current datafile.
  41.  
  42. record snapshot - Copies the current record, including field names, if any, into the clipboard.
  43.  
  44. select all - Selects all current text. If the Find Box is active, all the text in it will be selected. If the Text Area is active, the result varies with the type of datafile. If it is freeform, the entire text will be selected. If it is field-based, all the text in the field that contains the current selection will be selected. The latter is done to help prevent the inadvertent deletion of carriage returns, which  are used to separate the fields.
  45.  
  46. select cell - Selects the text in a cell in the current record of the current datafile.
  47.  
  48. This event takes a string containing the name of the cell as a required parameter.
  49.  
  50. Example:    select cell "Notes" -- in the current record of the current datafile
  51.  
  52.  
  53. Data Extraction Events
  54.  
  55. count - Returns the number of elements of a particular class within an object.
  56.  
  57. This event requires both a reference to the object whose elements are to be counted, and to the type class of the elements being counted. The type class may optionally be preceded by the keyword each. The object whose elements are to be counted is preceded by the word in.
  58.  
  59. Examples:    count record 2 of datafile "Sample Field Datafile" each word
  60.                              count words in paragraph 2 of record 3
  61.                           count records in datafile "Sample Freeform Datafile"
  62.                           count cells in datafile "Sample Field Datafile"
  63.  
  64. data size - Returns the size in bytes of an object. With languages other than Japanese, Chinese, and Korean, the size in bytes is the same as the number of characters.
  65.  
  66. This event requires a reference to the object whose size is being calculated.
  67.  
  68. exists - Verifies whether or not an object exists. Returns true is it exists, false if it doesn't.
  69.  
  70. This event requires a reference to the object in question.
  71.  
  72. Example:    if paragraph 2 of record 1 exists then beep end if
  73.  
  74. get - Gets the data for an object. These may be either textual elements (characters, words, paragraphs, etc.) or properties (paragraph length, cell name, datafile name, InfoGenie version, etc.). The word get is optional.
  75.  
  76. This event requires a reference to the object whose data is to be returned.
  77.  
  78. In the case of properties, most text objects have only offset  (from the start of the datafile) and length. Cells have name, the application has name and version, and datafiles have quite a list. See the section on Classes for more information.
  79.  
  80. Examples:    -- following are elements
  81.                                     get word 1 of paragraph 3 of record 8 of datafile "Lawyer Jokes"
  82.                               get cell "State" of every record of datafile "Sample Field Datafile"
  83.                               get (paragraphs 2 thru 4) of every record of datafile "Sample Freeform Datafile"
  84.                                     get (text from character 1 to character 3) of every record
  85.                                     get (every word whose character 1 is "M") of record 1
  86.                                              get cell "Organization" of (every record whose cell "State" is "TX") of datafile 1
  87.                                              -- following are properties
  88.                                              get view of datafile "Sample Field Datafile" -- List View or Basic View
  89.                                              get text block of datafile "Sample Freeform Datafile"
  90.                                              get version of application "InfoGenie™"
  91.  
  92.                                              set theLength to length of word 3
  93.                                              set firstCharacter to offset of word 3
  94.                                              set lastCharacter to firstCharacter + theLength - 1
  95.                                              get text from character firstCharacter  to character lastCharacter
  96.                                              get current record of datafile 1
  97.  
  98.                                              if field based datafile 2
  99.                                                     get every cell of record 3 of datafile 2
  100.                                              end if
  101.  
  102. Data Insertion Events
  103.  
  104. duplicate - Duplicates a record. Returns a reference to the new record.
  105.  
  106. This event takes an optional a reference to the record that is to be duplicated. If there is no reference, the default is the current record of the current datafile. The datafile containing the object to be duplicated is first brought to the front, becoming the current datafile.
  107.  
  108. It also takes an optional reference to the record before which or after which the duplicate is to be inserted. The default is to insert the duplicate immediately after the record which is being duplicated.
  109.  
  110. Examples:    duplicate record 3 -- duplicate at 4
  111.                                             duplicate record 3 at end of last record -- duplicate at end of datafile
  112.                                                duplicate record 3 at beginning of first record -- duplicate at 1
  113.                                             duplicate record 3 at end of record 4 -- duplicate at 5
  114.                                             duplicate record 3 at beginning of record 2 -- duplicate at 2
  115.  
  116. import Email - Imports an E-mail text file into the current freeform datafile. You can use the display event to bring a datafile to the front before calling this event.
  117.  
  118. This event requires an alias or full pathname of the E-mail text file that is being imported, or a list of such aliases.
  119.  
  120. It also takes an optional parameter consisting of the name of the E-mail format preceded by the keyword with format. The format name must be one of the ones that appears in the Import E-mail dialog. If there is no with format parameter, the default format is used.
  121.  
  122. It also takes an optional true or false parameter preceded by the keyword prepend. If the parameter is true, the imported E-mail messages will be inserted at the beginning of the datafile. If it is false, they will be inserted at the end of the datafile. The default is false.
  123.  
  124. Example:    display datafile "January 1995 E-Mail"
  125.                                               import Email "Hard Disk:E-Mail Folder:Email from Jan 95"
  126.                                         import Email "Hard Disk:E-Mail Folder:Late Jan 95 Email" with format  ¬
  127.                                            "SnapMail™ 2.0 Text File" prepend false
  128.  
  129. import text as record - Appends a text file as a record in the current freeform datafile. You can use the display event to bring a datafile to the front before calling this event.
  130.  
  131. This event requires an alias or full pathname of the text file that is being imported, or a list of such aliases.
  132.  
  133. Example:    display datafile "Recipes"
  134.                                               import text as record "Hard Disk:Recipe Folder:Potato Salad Recipe"
  135.  
  136. make - Makes a new record optionally at a specified location and with specified data. Returns a reference to the new record. The datafile where the object is to be created is first brought to the front, becoming the current datafile.
  137.  
  138. This event requires the word record, optionally preceded by the word new.
  139.  
  140. It also takes an optional reference to the record before which or after which the new record is to be inserted. The default is to insert the new record at the end of the current datafile.
  141.  
  142. It also takes an optional parameter, following the keyword with data, to some textual data. The data may be a single text object or a list of text objects. If the datafile is freeform, all the data is simply placed into the record as it is. If the datafile is field-based and the data is a list, then each item of the list is inserted in turn into a cell of the record. If there are more items in the list than there are cells, all remaining items are inserted into the last cell of the record, just as they would go into a freeform record. If the with data parameter is omitted, the result is an empty record. (Note that empty records are deleted whenever you change records or close the datafile, so some kind of data must be inserted in order to avoid automatic deletion.)
  143.  
  144. Examples:    make record at end of record 3 of datafile 1 with data {"Ms.", "Katy", "Deere"}
  145.                                                make record at beginning of record 1 with data "This is record 1."
  146.                                                make new record -- make empty record at end of current datafile
  147.  
  148. set - Sets an object's data. If the object is a block of text, it is replaced. If the object is an insertion point, the data is inserted at that point. If the object is a property, the value of that property is changed. The datafile containing the object to be changed is first brought to the front, becoming the current datafile.
  149.  
  150. This event requires a reference to the object that is to be changed and a parameter, following the keyword new, containing the new value.
  151.  
  152. Examples:    -- following are elements
  153.                                                set word 1 of paragraph 2 of record 12 to "Abraham"
  154.                                                   set insertion point before word 2 to "("
  155.                                                   set insertion point after word 2 to ")"
  156.                                                   set {word 1, word 2, word 3} to {"one", "two", "three"}
  157.  
  158.                                                   try
  159.                                                          set insertion point before (every word whose character 1 is "M") to "M-M-"
  160.                                                       on error
  161.                                                   end try
  162.  
  163.                                                   set cell "State" of (every record whose cell "State" is "TX") to "Texas"
  164.                                                   set every word where it is "TX" to "Texas"
  165.                                                   set every cell of every record to ""
  166.                                                   -- following are properties
  167.                                                   find "Microsoft is great."
  168.                                                   set selection to "The Evil Empire is large."
  169.  
  170.                                                   set view to basic view
  171.                                                   set font of datafile "Sample Freeform Datafile" to "Helvetica"
  172.                                                   set size to 12
  173.                                                   set style to plain
  174.                                                   set style to {bold, italic}
  175.  
  176.                                                   tell record 4
  177.                                                           set {cell "First", cell "Last", cell "State"} to {"Mary Jo", "Smith", "AZ"}
  178.                                                   end tell
  179.  
  180.  
  181. Data Modification Events
  182.  
  183. delete - Deletes an element from an object.
  184.  
  185. This event requires a reference to the element that is to be deleted.
  186.  
  187. Examples:    delete character 1 of record 1 of datafile "Sample Freeform Datafile"
  188.                                                   delete cell "Position" of every record of datafile 1
  189.                                                   delete last record -- of the current datafile
  190.  
  191. move - Moves a record to a new location. Returns a reference to the object in its new location. The datafile containing the object to be moved is first brought to the front, becoming the current datafile.
  192.  
  193. This event requires a reference to the record that is to be moved, and a reference to the record before or after which it is being moved.
  194.  
  195. Examples:    move record 3 to end of record 6 of datafile 1 -- becomes 6
  196.                                                   move record 3 to beginning of record 1 -- becomes 1
  197.                                                   move record 3 -- moves it after itself, so does nothing
  198.  
  199.  
  200. File-related Events
  201.  
  202. close - Closes a datafile.
  203.  
  204. This event takes an optional reference to the datafile that is to be closed. If there is no reference, the default is the current datafile.
  205.  
  206. It also takes an optional parameter following the keyword saving. If the parameter is yes, any changes are saved. If it is no, changes are not saved. If it is ask, a dialog comes up that requires user interaction. If there is no parameter, the default is ask.
  207.  
  208. Examples:    close -- close the current datafile. Bring up dialog if there have been changes.
  209.                           close datafile "Recipes" saving ask
  210.                           close datafile "Recipes" saving yes
  211.                           close datafile "Recipes" saving no
  212.  
  213. open - Opens the specified file(s).
  214.     
  215. This event requires an alias (or list of aliases) to the file(s) to be opened. This is most useful when using a scripting extension which brings up a dialog permitting the user to select a datafile, and which then returns an alias to the datafile in the result.
  216.  
  217. Example:    open "Hard Drive:InfoGenie™ Folder:Datafiles:Recipes"
  218.  
  219. open datafile - Opens a datafile using its name from the Datafiles menu. Returns true if the datafile was successfully opened. Otherwise, returns false, which could happen if the name does  not appear in the Datafiles menu.
  220.  
  221. This event requires the name of the datafile just as it appears in the Datafiles menu, but it does NOT require a full path name or alias. This is generally more convenient than the standard open event when no user interaction is desired.
  222.  
  223. Example:    open "Recipes"
  224.  
  225. quit - Quits InfoGenie.
  226.  
  227. This event takes an optional parameter following the keyword saving. If the parameter is yes, any changes are saved. If it is no, changes are not saved. If it is ask, a dialog comes up that requires user interaction. If there is no parameter, the default is ask.
  228.  
  229. Examples:    quit -- bring up  save dialog if there have been changes
  230.                           quit saving yes
  231.                           quit saving no
  232.  
  233. revert - Reverts to saved version of a datafile.
  234.  
  235. This event takes an optional parameter to the datafile that is to be reverted. The default is to revert the current datafile.
  236.  
  237. Examples:    revert -- the current datafile
  238.                           revert datafile "U.S. Senators"
  239.  
  240. save - Saves a datafile.
  241.  
  242. This event takes an optional parameter to the datafile that is to be saved. The default is to save the current datafile.
  243.  
  244. Examples:    save -- the current datafile
  245.                           save datafile "U.S. Senators"
  246.  
  247. Printing Events
  248. The use of a single print command would require a large number of complex parameters and default behaviors. Instead, we have decided to provide more specific routines for those printing options that we are going to support.
  249.  
  250. print - This event is included to comply with support for the Required Suite, but it actually does nothing, because there is no appropriate default printing behavior for InfoGenie. 
  251.  
  252. print current - Makes a record current and prints it.
  253.  
  254. This event takes an optional reference to a record to be printed. If there is no reference, the default is the current record of the current datafile.
  255.  
  256. Examples:    find "Fred Farkle" in "Sample Freeform Datafile"
  257.                           print current -- the current record, containing info on Fred Farkle
  258.  
  259.                           print current record 5 of datafile "Recipes"
  260.  
  261. print quick envelope - Makes a record current and prints a single envelope using the text block from that record. The text block is set for each datafile using the Text Block Layout function (under the Edit menu in Basic View).
  262.  
  263. This event takes an optional reference to a record containing the address (text block) to be printed. If there is no reference, the default is the current record of the current datafile.
  264.  
  265. It also takes an optional parameter following the keyword with template, which is the name of the envelope template which is to be used.
  266.  
  267. Examples:    print quick envelope -- using the current record
  268.                           print quick envelope record 6 of datafile "Sample Field Datafile"
  269.                           print quick envelope record 5 with template "4.125 X 9.25 w/return address"
  270.  
  271.  
  272. Sorting Events
  273. As with printing, the use of a single sort command would require a large number of complex parameters and default behaviors. Instead, we have decided to provide more specific routines for the various sorting options. Each event has its own appropriate parameters. Note that all the sorts default to ascending textual sorts using whatever other criteria were last used when sorting that datafile.
  274.  
  275. sort field based - Sorts the records in a field-based datafile. The datafile containing the object to be sorted is first brought to the front, becoming the current datafile.
  276.  
  277. This event takes an optional reference to the datafile to be sorted. It must be a field-based datafile. If there is no reference, the default is to sort the current datafile.
  278.  
  279. It also takes any or all of the following optional parameters, preceded by the appropriate keywords:
  280.  
  281.          primary  reference -- primary cell to sort on - default is current primary cell
  282.          secondary  reference -- secondary cell to sort on - default is none (no secondary sort)
  283.          in order  ascending/descending -- the sort order - default is ascending
  284.          primary as  textual/numeric -- the primary sort type - default is textual
  285.          secondary as  textual/numeric -- the secondary sort type - default is textual
  286.  
  287. Examples:    sort field based datafile "Sample Field Datafile" primary cell "Last" secondary¬
  288.                           cell "First" in order descending
  289.                           sort field based datafile "Customer Info" primary cell "Index" primary as numeric
  290.  
  291. sort names - Sorts the records in a freeform datafile by last name and secondarily by first name. Identification of the last name is simply the last word which is not a title. Surnames such as De La Rosa and van Buren are not recognized as single names. The datafile containing the object to be sorted is first brought to the front, becoming the current datafile.
  292.  
  293. This event takes an optional reference to the datafile to be sorted. It must be a freeform datafile. If there is no reference, the default is to sort the current datafile.
  294.  
  295. It also takes either or both of the following optional parameters, preceded by the appropriate keyword:
  296.  
  297.          onLine  integer -- number of line containing names (-1 means last line of record, 0 [zero] means last line of address block)  - default is current setting
  298.          in order  ascending/descending  -- the sort order - default is ascending
  299.  
  300. Examples:    sort names datafile "Sample Freeform Datafile" onLine 1 in order ascending
  301.                           sort names datafile "Japanese Customers" onLine 0
  302.  
  303. sort  whole records- Sorts the records in a freeform datafile by whole record. The datafile containing the object to be sorted is first brought to the front, becoming the current datafile.
  304.  
  305. This event takes an optional reference to the datafile to be sorted. It must be a freeform datafile. If there is no reference, the default is to sort the current datafile.
  306.  
  307. It also takes an optional parameter, preceded by the keyword in order, which indicates whether the sort is to be ascending or descending. If there is no parameter, the default is to sort in ascending order.
  308.  
  309. Example:    sort whole record datafile "Recipes" in order ascending
  310.  
  311. sort WOL - Sorts the records in a freeform datafile by word # on line #. The datafile containing the object to be sorted is first brought to the front, becoming the current datafile. WOL is short for "Word On Line".
  312.  
  313. This event takes an optional reference to the datafile to be sorted. It must be a freeform datafile. If there is no reference, the default is to sort the current datafile.
  314.  
  315. It also takes any or all of the following optional parameters, preceded by the appropriate keyword:
  316.  
  317.          byWord  integer -- number of the word (within its line) to sort on (-1 means last word)- default is current setting
  318.          onLine  integer -- number of line containing names (-1 means last line of record,     0 [zero] means last line of address block)  - default is current setting
  319.          in order  ascending/descending  -- the sort order - default is ascending
  320.  
  321. Example:    sort WOL datafile "Sample Freeform Datafile" byWord 1 onLine 1
  322.                          sort WOL datafile 2 byWord -1 onLine -1 -- by last word on last line of records
  323.  
  324. sort zip codes - Sorts the records in a freeform datafile by Zip Code. The sorted datafile will have all records that do not contain recognized postal codes, followed by those containing U.S. Zip code in order, and then by those containing Canadian postal codes in order. The datafile containing the object to be sorted is first brought to the front, becoming the current datafile.
  325.  
  326. This event takes an optional reference to the datafile to be sorted. It must be a freeform datafile. If there is no reference, the default is to sort the current datafile.
  327.  
  328. It also takes an optional parameter, preceded by the keyword in order, which indicates whether the sort is to be ascending or descending. If there is no parameter, the default is to sort in ascending order.
  329.  
  330. Example: sort    zip codes "Sample Freeform Datafile"
  331.  
  332. Classes
  333. See the IG AppleScript Classes file for information on object classes supported by InfoGenie.